.class Lcom/evernote/thrift/TBaseHelper$NestedStructureComparator;
.super Ljava/lang/Object;
.source "TBaseHelper.java"

# interfaces
.implements Ljava/util/Comparator;


# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
    value = Lcom/evernote/thrift/TBaseHelper;
.end annotation

.annotation system Ldalvik/annotation/InnerClass;
    accessFlags = 0xa
    name = "NestedStructureComparator"
.end annotation


# direct methods
.method private constructor <init>()V
    .registers 1

    .prologue
    .line 199
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    return-void
.end method

.method synthetic constructor <init>(Lcom/evernote/thrift/TBaseHelper$1;)V
    .registers 2
    .param p1, "x0"    # Lcom/evernote/thrift/TBaseHelper$1;

    .prologue
    .line 199
    invoke-direct {p0}, Lcom/evernote/thrift/TBaseHelper$NestedStructureComparator;-><init>()V

    return-void
.end method


# virtual methods
.method public compare(Ljava/lang/Object;Ljava/lang/Object;)I
    .registers 4
    .param p1, "oA"    # Ljava/lang/Object;
    .param p2, "oB"    # Ljava/lang/Object;

    .prologue
    .line 201
    if-nez p1, :cond_6

    if-nez p2, :cond_6

    .line 202
    const/4 v0, 0x0

    .line 216
    .end local p1    # "oA":Ljava/lang/Object;
    .end local p2    # "oB":Ljava/lang/Object;
    :goto_5
    return v0

    .line 203
    .restart local p1    # "oA":Ljava/lang/Object;
    .restart local p2    # "oB":Ljava/lang/Object;
    :cond_6
    if-nez p1, :cond_a

    .line 204
    const/4 v0, -0x1

    goto :goto_5

    .line 205
    :cond_a
    if-nez p2, :cond_e

    .line 206
    const/4 v0, 0x1

    goto :goto_5

    .line 207
    :cond_e
    instance-of v0, p1, Ljava/util/List;

    if-eqz v0, :cond_1b

    .line 208
    check-cast p1, Ljava/util/List;

    .end local p1    # "oA":Ljava/lang/Object;
    check-cast p2, Ljava/util/List;

    .end local p2    # "oB":Ljava/lang/Object;
    invoke-static {p1, p2}, Lcom/evernote/thrift/TBaseHelper;->compareTo(Ljava/util/List;Ljava/util/List;)I

    move-result v0

    goto :goto_5

    .line 209
    .restart local p1    # "oA":Ljava/lang/Object;
    .restart local p2    # "oB":Ljava/lang/Object;
    :cond_1b
    instance-of v0, p1, Ljava/util/Set;

    if-eqz v0, :cond_28

    .line 210
    check-cast p1, Ljava/util/Set;

    .end local p1    # "oA":Ljava/lang/Object;
    check-cast p2, Ljava/util/Set;

    .end local p2    # "oB":Ljava/lang/Object;
    invoke-static {p1, p2}, Lcom/evernote/thrift/TBaseHelper;->compareTo(Ljava/util/Set;Ljava/util/Set;)I

    move-result v0

    goto :goto_5

    .line 211
    .restart local p1    # "oA":Ljava/lang/Object;
    .restart local p2    # "oB":Ljava/lang/Object;
    :cond_28
    instance-of v0, p1, Ljava/util/Map;

    if-eqz v0, :cond_35

    .line 212
    check-cast p1, Ljava/util/Map;

    .end local p1    # "oA":Ljava/lang/Object;
    check-cast p2, Ljava/util/Map;

    .end local p2    # "oB":Ljava/lang/Object;
    invoke-static {p1, p2}, Lcom/evernote/thrift/TBaseHelper;->compareTo(Ljava/util/Map;Ljava/util/Map;)I

    move-result v0

    goto :goto_5

    .line 213
    .restart local p1    # "oA":Ljava/lang/Object;
    .restart local p2    # "oB":Ljava/lang/Object;
    :cond_35
    instance-of v0, p1, [B

    if-eqz v0, :cond_46

    .line 214
    check-cast p1, [B

    .end local p1    # "oA":Ljava/lang/Object;
    check-cast p1, [B

    check-cast p2, [B

    .end local p2    # "oB":Ljava/lang/Object;
    check-cast p2, [B

    invoke-static {p1, p2}, Lcom/evernote/thrift/TBaseHelper;->compareTo([B[B)I

    move-result v0

    goto :goto_5

    .line 216
    .restart local p1    # "oA":Ljava/lang/Object;
    .restart local p2    # "oB":Ljava/lang/Object;
    :cond_46
    check-cast p1, Ljava/lang/Comparable;

    .end local p1    # "oA":Ljava/lang/Object;
    check-cast p2, Ljava/lang/Comparable;

    .end local p2    # "oB":Ljava/lang/Object;
    invoke-static {p1, p2}, Lcom/evernote/thrift/TBaseHelper;->compareTo(Ljava/lang/Comparable;Ljava/lang/Comparable;)I

    move-result v0

    goto :goto_5
.end method
